#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>

#include <linux/miscdevice.h>

//在Linux内核中，使用struct miscdevice来表示miscdevice
//初始化struct miscdevice，定义一个misc设备
struct miscdevice miscdev = {
    .minor = MISC_DYNAMIC_MINOR, //动态动态次设备号
    .name = "mis_hello",         //此名称将显示在/dev目录下面
    .fops = &hello_fops,
};

//驱动加载函数
static int __init hello_init(void)
{
    misc_register(&miscdev); //注册
    return 0;
}

//驱动卸载函数
static void __exit hello_exit(void)
{
    misc_deregister(&miscdev); //释放
}

MODULE_LICENSE("GPL");

module_init(hello_init);
module_exit(hello_exit);
